import Vue from 'vue'
import App from './App.vue'
import VueLazyload from 'vue-lazyload'
//JSON、图片文件默认对外暴露
import bgImg from '@/assets/1.png'
//使用图片懒加载插件
Vue.use(VueLazyload, {
  //设置默认图片
  loading:bgImg
})
//引入路由
import router from '@/router';
//引入仓库
//第五步
import store from '@/store';
//配置全局组件
import Header from '@/components/Header';
import Footer from '@/components/Footer'
import TypeNav from '@/components/TypeNav'
import Pagination from '@/components/Pagination';
import HintButton from '@/pages/Communication/AttrsListenersTest/HintButton'
//第一个参数:全局组件的名字 第二个参数:那个组件
//全局组件：只需要在入口文件注册一次，可以在任意组件内直接使用。
Vue.component(Header.name,Header);
Vue.component(Footer.name,Footer);
Vue.component(TypeNav.name,TypeNav);
Vue.component(Pagination.name,Pagination);
Vue.component(HintButton.name,HintButton);

//引入mock文件
import "@/mock/mockServer";

//引入swiper样式，因为程序很多组件都需要用到这个样式，咱们只是引入一次即可！！！
import "swiper/css/swiper.min.css"


//api里面请求都是分别暴露
import * as API from '@/api';

//element-ui,按需引入组件
import {MessageBox,Message,Button,Table,TableColumn} from 'element-ui';
//第一种写法
// Vue.component(Button.name,Button);
//第二种写法
Vue.use(Button);
Vue.use(Table);
Vue.use(TableColumn);
//第三种写法
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;
Vue.prototype.$tip = Message;


//引入自定义插件(vuex、vue-router、elementui、vuelayload)
import big from '@/plugins/Big';
//使用这个插件:Vue.use方法作用，可以让插件对象的install方法执行一次
Vue.use(big,{
   title:'豪哥的插件'
});

//引入表单验证插件
import '@/plugins/validate';
new Vue({
  render: h => h(App),
  //注册路由:项目当中只要是VC,都有$route与$router属性
  router,
  //第六步
  //注册仓库：项目当中只要是VC,都拥有$store属性
  store,
  //全局事件总线
  beforeCreate(){
    //给全部VC添加上$bus属性
    Vue.prototype.$bus = this;
    Vue.prototype.$ajax = API;
  }
}).$mount('#app')


